home *** CD-ROM | disk | FTP | other *** search
- #ifndef __MSGBASE_HPP
-
- #define __MSGBASE_HPP
-
- #include "mbliberr.hpp"
- #include "msgtxt.hpp"
- #include "msghdr.hpp"
-
- #include "mb_lib.h"
-
- class MsgBase: public MbLibErr, MsgHdr, MsgTxt
- {
- private:
-
- protected:
-
- long current; // current record (PrevTo, NextTo)
- unsigned char board;
- char path[81]; // path to the messagebase files (*.BBS)
- MSGIDX_RECORD MsgIdx;
- MSGTOIDX_RECORD MsgToIdx;
- MSGINFO_RECORD MsgInfo;
-
- public:
-
- MsgBase (void); // init object, open msgbase in curr. dir.
- MsgBase (char *_path); // init object, open msgbase in path
- virtual ~MsgBase (void);
-
- // locking services
-
- int Lock (void); // semafore dir. is msgbase dir
- int Lock (char *_semapath);
- void Unlock (void);
-
- // manipulation services
-
- long MsgNr2RecNr (int msgnr);
- unsigned int RecNr2MsgNr (long recnr);
-
- // read services
-
- void ReadInfo (void);
- int ReadHdr (long recnr);
- int ReadIdx (long recnr);
- int ReadToIdx (long recnr);
- M_TEXT ReadText (void);
- M_TEXT ReadText (long recnr); // convenience function
-
- // write services
-
- void WriteInfo (void);
- int WriteHdr (long recnr);
- int WriteIdx (long recnr);
- int WriteToIdx (long recnr);
- int WriteText (void);
- int WriteText (long recnr); // convenience function
- int WriteNew (void);
-
- int Kill (long recnr);
-
- // search services
-
- void Board (unsigned char _board) { board = _board; };
- int Board (void) { return ( (int) board ); };
-
- long First (void);
- long Next (void);
- long Last (void);
- long Prev (void);
- long FirstTo (MSGTOIDX_RECORD *_user);
- long NextTo (void);
- long LastTo (MSGTOIDX_RECORD *_user);
- long PrevTo (void);
- };
-
- #endif
-